#include "../Modulos/QueueLDEPPF/QueueLDEPPF.h"
#include <stdlib.h>

void PressEnter(){
    char tecla;
    fflush(stdin);
    printf("\n\n\n                    Presione 'Enter' para continuar");
    scanf("%c", &tecla);
    fflush(stdin);
}

int main()
{
    ListaDEPPF queue;
    Make(queue);
    char opcion;
    do{
    fflush(stdin);
    system("cls");
    printf("******* Programa de prueba QueueLDEPPF ********");
    printf("\n\n0 - Cargar un nuevo elemento al principio.");
    printf("\n1 - Cargar un nuevo elemento al final.");
    printf("\n2 - Verificar si esta vacia la QueueLDEPPF");
    printf("\n3 - Mostrar el 1er elemento de la QueueLDEPPF");
    printf("\n4 - Mostrar el ultimo elemento de la QueueLDEPPF");
    printf("\n5 - Quitar el 1er elemento de la QueueLDEPPF");
    printf("\n6 - Quitar el ultimo elemento de la QueueLDEPPF");
    printf("\n7 - Salir");
    printf("\n\nSelecione opcion: ");
    scanf("%c", &opcion);
    switch (opcion){
        case '0':   int elem;
                    printf("\nIngrese nuevo elemento: ");
                    scanf("%d", &elem);
                    InsBack(queue, elem);
                    PressEnter();
                    break;
        case '1':   int elem1;
                    printf("\nIngrese nuevo elemento: ");
                    scanf("%d", &elem1);
                    InsFront(queue, elem1);
                    PressEnter();
                    break;
        case '2':   if (Empty(queue))
                        printf("\nLa queue esta vacia");
                    else
                        printf("\nLa queue NO esta vacia");
                    PressEnter();
                    break;
        case '3':   if(Empty(queue)){
                            printf("\nError: La queue esta vacia");
                        }else{
                            printf("\nEl 1er elemeto es: %d", Front(queue));
                    }
                    PressEnter();
                    break;
        case '4':   if(Empty(queue)){
                            printf("\nError: La queue esta vacia");
                    }else{
                            printf("\nEl ultimo elemeto es: %d", End(queue));
                    }
                    PressEnter();
                    break;
        case '5':   if(Empty(queue)){
                            printf("\nError: La queue esta vacia");
                    }else{
                            RemFrom(queue);
                            printf("\nSe a quitado el 1er elemneto de la Queue");
                    }
                    PressEnter();
                    break;
        case '6':    if(Empty(queue)){
                            printf("\nError: La queue esta vacia");
                    }else{
                            RemEnd(queue);
                            printf("\nSe a quitado el ultimo elemneto de la Queue");
                    }
                    PressEnter();
                    break;
        case '7':   printf("\nEl programa a finalizado");
                    PressEnter();
                    break;

        default:    printf ("\n\n          Opcion incorrecta, ingrese opcion correcta");
                    PressEnter();
        }
    }while(opcion != '7');
}

